package com.solution.admin.area.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.area.dao.AreaDao;
import com.solution.admin.area.entity.AreaEntity;
import com.solution.common.dao.impl.BaseDaoImpl;

/**
 * 区域信息Dao实现
 * @author diwankang
 * @date 2017年4月10日 上午10:44:59
 */
@Repository
public class AreaDaoImpl extends BaseDaoImpl<AreaEntity> implements AreaDao {
    
    /**
     * 根据约束条件获取区域列表
     * @Title: getAreaList   
     * @Description:(描述)   
     * @param areaStr 区域编码拼接字符串，逗号分隔（320100,321010）
     * @param province 省
     * @param length 长度（以此限制索取区域级别，
     * 8  --省<br>
     * 15 --市<br>
     * 22 --区<br>
     * 25 --区(海南有几个特例，因此区最终取长度25)）<br>
     * 32 --街道<br>
     * @return List<AreaEntity>    
     * @author xu_cc  
     * @throws Exception exception
     * @Date 创建时间：2017年8月30日 下午4:24:50
     */
    public List<AreaEntity> getAreaCheckList(Map<String, String> map) {
        return super.getSessionTemplate().selectList(getStatement("getAreaCheckList"), map);
    }

	/**
	 * 查询区域
	 * 
	 * @param paramMap
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author diwankang
	 * @date 2017年4月10日 上午10:28:19
	 * @modify <scy> <2017年4月10日 上午10:28:19>
	 */
	@Override
	public List<AreaEntity> listArea(Map<String, Object> paramMap) {
		return super.listBy(paramMap);
	}
	/**
	 * @param rootId
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author shanchuangye
	 * @date 2017年4月15日 下午3:03:54
	 * @modify <scy> <2017年4月15日 下午3:03:54>
	 */
	@Override
	public List<AreaEntity> listAreaTree(Long rootId) {
		return super.getSessionTemplate().selectList(getStatement("listAreaTree"), rootId);
	}
	
	/**
	 * 一次性加载区域级别的数据
	 * @param param
	 * @return
	 */
	@Override
	public List<AreaEntity> listAreaForSelector(Map<String, Object> param){
		return super.getSessionTemplate().selectList(getStatement("listAreaForSelector"), param);
	}
}
